// 引入关于book的所有相关方法
const {
    findAllBooks,
    findCurrentBook,
    addBook,
    updateBook,
    removeBook
} = require('../models/bookModule/bookMethods')

// 引入express框架
const express = require('express')

// 创建路由器
const router = express.Router()

// 注册图书列表的路由
router.get('/list', async (req, res) => {
    // 查找数据库获取图书列表
    const books = await findAllBooks()
    res.render('book/list', {
        books
    })
})

// 注册前往修改图书页面的路由
router.get('/toUpdate/:id', async (req, res) => {
    // 获取id参数
    const {
        id
    } = req.params
    // 请求数据库查找id对应的图书
    const reslut = await findCurrentBook(id)
    if (reslut.code == 404) {
        res.render('error', {
            errorMessage: reslut.value
        })
    } else {
        res.render('book/addOrUpdate', {
            book: reslut.value
        })
    }

})

// 注册前往添加图书页面的路由
router.get('/toAdd', (req, res) => {
    // 定义一个空的book对象
    const book = {
        name: '',
        author: '',
        price: 0
    }
    res.render('book/addOrUpdate', {
        book
    })
})

// 注册添加图书的路由
router.post('/add', (req, res) => {
    // 获取参数
    const book = req.body
    if (book.name.trim() == '' || book.author.trim() == '' || book.price == 0) {
        res.redirect('/book/list')
        return
    }
    // 向数据库中添加图书
    addBook(book)
    res.redirect('/book/list')
})

// 注册更新图书的路由
router.post('/update', (req, res) => {
    // 获取参数
    const book = req.body
    // 向数据库中添加图书
    updateBook(book)
    res.redirect('/book/list')
})


// 注册删除图书的路由
router.get('/remove/:id', (req, res) => {
    // 获取对应id
    const {
        id
    } = req.params
    // 删除数据库中对应id的图书
    removeBook(id)
    res.redirect('/book/list')
})

// 暴露路由器
module.exports = router